package com.zhenta;

import com.zhentao.pojo.PatientInfo;
import com.zhentao.pojo.PatientInfoVO;
import com.zhentao.pojo.Result;
import com.zhentao.pojo.RelationType;
import com.zhentao.pojo.IdCardType;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * 就诊人服务Feign接口
 */
@FeignClient(name = "patient-service", path = "/patient", contextId = "patientInfoFeign")
public interface PatientServiceFeign {

    /**
     * 获取所有就诊人信息列表
     */
    @GetMapping("/list")
    Result<List<PatientInfoVO>> getPatientList();

    /**
     * 根据ID获取就诊人信息
     */
    @GetMapping("/{id}")
    Result<PatientInfoVO> getPatientById(@PathVariable("id") Integer id);

    /**
     * 添加就诊人信息
     */
    @PostMapping("/add")
    Result<String> addPatient(@RequestBody PatientInfo patientInfo);

    /**
     * 更新就诊人信息
     */
    @PutMapping("/update")
    Result<String> updatePatient(@RequestBody PatientInfo patientInfo);

    /**
     * 删除就诊人信息
     */
    @DeleteMapping("/{id}")
    Result<String> deletePatient(@PathVariable("id") Integer id);

    /**
     * 设置默认就诊人
     */
    @PutMapping("/setDefault/{id}")
    Result<String> setDefaultPatient(@PathVariable("id") Integer id);

    /**
     * 获取关系类型列表
     */
    @GetMapping("/relationTypes")
    Result<List<RelationType>> getRelationTypes();

    /**
     * 获取证件类型列表
     */
    @GetMapping("/idCardTypes")
    Result<List<IdCardType>> getIdCardTypes();
} 